home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 2003 August / MW 8 2003 CD1.iso / Inside Macworld / Product News / gimp-1.2.4.sit / gimp-1.2.4 / acinclude.m4 < prev    next >
Encoding:
M4 Source File  |  2002-02-02  |  9.1 KB  |  285 lines

  1. ## Local versions of glib-gettext.m4 and pkg.m4 which are needed to
  2. ## run aclocal+autoconf. We don't want to depend on glib-2.0 and
  3. ## pkg-config and thus include the macros here.
  4.  
  5.  
  6. dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
  7. dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
  8. dnl also defines GSTUFF_PKG_ERRORS on error
  9. AC_DEFUN(PKG_CHECK_MODULES, [
  10.   succeeded=no
  11.  
  12.   if test -z "$PKG_CONFIG"; then
  13.     AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
  14.   fi
  15.  
  16.   if test "$PKG_CONFIG" = "no" ; then
  17.      echo "*** The pkg-config script could not be found. Make sure it is"
  18.      echo "*** in your path, or set the PKG_CONFIG environment variable"
  19.      echo "*** to the full path to pkg-config."
  20.      echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
  21.   else
  22.      if ! $PKG_CONFIG --atleast-pkgconfig-version 0.7.0; then
  23.         echo "*** Your version of pkg-config is too old. You need version 0.7.0 or newer."
  24.         echo "*** See http://www.freedesktop.org/software/pkgconfig"
  25.      else
  26.         AC_MSG_CHECKING(for $2)
  27.  
  28.         if $PKG_CONFIG --exists "$2" ; then
  29.             AC_MSG_RESULT(yes)
  30.             succeeded=yes
  31.  
  32.             AC_MSG_CHECKING($1_CFLAGS)
  33.             $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
  34.             AC_MSG_RESULT($$1_CFLAGS)
  35.  
  36.             AC_MSG_CHECKING($1_LIBS)
  37.             $1_LIBS=`$PKG_CONFIG --libs "$2"`
  38.             AC_MSG_RESULT($$1_LIBS)
  39.         else
  40.             $1_CFLAGS=""
  41.             $1_LIBS=""
  42.             ## If we have a custom action on failure, don't print errors, but 
  43.             ## do set a variable so people can do so.
  44.             $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
  45.             ifelse([$4], ,echo $$1_PKG_ERRORS,)
  46.         fi
  47.  
  48.         AC_SUBST($1_CFLAGS)
  49.         AC_SUBST($1_LIBS)
  50.      fi
  51.   fi
  52.  
  53.   if test $succeeded = yes; then
  54.      ifelse([$3], , :, [$3])
  55.   else
  56.      ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
  57.   fi
  58. ])
  59.  
  60.  
  61. # Macro to add for using GNU gettext.
  62. # Ulrich Drepper <drepper@cygnus.com>, 1995.
  63. #
  64. # Modified to never use included libintl. 
  65. # Owen Taylor <otaylor@redhat.com>, 12/15/1998
  66. #
  67. #
  68. # This file can be copied and used freely without restrictions.  It can
  69. # be used in projects which are not available under the GNU Public License
  70. # but which still want to provide support for the GNU gettext functionality.
  71. # Please note that the actual code is *not* freely available.
  72. #
  73. #
  74. # If you make changes to this file, you MUST update the copy in
  75. # acinclude.m4. [ aclocal dies on duplicate macros, so if
  76. # we run 'aclocal -I macros/' then we'll run into problems
  77. # once we've installed glib-gettext.m4 ]
  78. #
  79.  
  80. # serial 5
  81.  
  82. AC_DEFUN(AM_GLIB_WITH_NLS,
  83.   dnl NLS is obligatory
  84.   [USE_NLS=yes
  85.     AC_SUBST(USE_NLS)
  86.  
  87.     dnl Figure out what method
  88.     nls_cv_force_use_gnu_gettext="no"
  89.  
  90.     nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
  91.     if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
  92.       dnl User does not insist on using GNU NLS library.  Figure out what
  93.       dnl to use.  If gettext or catgets are available (in this order) we
  94.       dnl use this.  Else we have to fall back to GNU NLS library.
  95.       dnl catgets is only used if permitted by option --with-catgets.
  96.       nls_cv_header_intl=
  97.       nls_cv_header_libgt=
  98.       CATOBJEXT=NONE
  99.  
  100.       AC_CHECK_HEADER(libintl.h,
  101.         [AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc,
  102.       [AC_TRY_LINK([#include <libintl.h>], [return (int) dgettext ("","")],
  103.         gt_cv_func_dgettext_libc=yes, gt_cv_func_dgettext_libc=no)])
  104.  
  105.       if test "$gt_cv_func_dgettext_libc" != "yes"; then
  106.         AC_CHECK_LIB(intl, bindtextdomain,
  107.           [AC_CACHE_CHECK([for dgettext in libintl],
  108.             gt_cv_func_dgettext_libintl,
  109.             [AC_CHECK_LIB(intl, dgettext,
  110.           gt_cv_func_dgettext_libintl=yes,
  111.           gt_cv_func_dgettext_libintl=no)],
  112.             gt_cv_func_dgettext_libintl=no)])
  113.       fi
  114.  
  115.           if test "$gt_cv_func_dgettext_libintl" = "yes"; then
  116.         LIBS="$LIBS -lintl";
  117.           fi
  118.  
  119.       if test "$gt_cv_func_dgettext_libc" = "yes" \
  120.         || test "$gt_cv_func_dgettext_libintl" = "yes"; then
  121.         AC_DEFINE(HAVE_GETTEXT)
  122.         AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
  123.            [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
  124.         if test "$MSGFMT" != "no"; then
  125.           AC_CHECK_FUNCS(dcgettext)
  126.           AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
  127.           AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
  128.             [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
  129.           AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
  130.                   return _nl_msg_cat_cntr],
  131.             [CATOBJEXT=.gmo
  132.              DATADIRNAME=share],
  133.             [CATOBJEXT=.mo
  134.              DATADIRNAME=lib])
  135.           INSTOBJEXT=.mo
  136.         fi
  137.       fi
  138.  
  139.       # Added by Martin Baulig 12/15/98 for libc5 systems
  140.       if test "$gt_cv_func_dgettext_libc" != "yes" \
  141.         && test "$gt_cv_func_dgettext_libintl" = "yes"; then
  142.         INTLLIBS=-lintl
  143.         LIBS=`echo $LIBS | sed -e 's/-lintl//'`
  144.       fi
  145.       ])
  146.  
  147.       if test "$CATOBJEXT" = "NONE"; then
  148.         dnl Neither gettext nor catgets in included in the C library.
  149.         dnl Fall back on GNU gettext library.
  150.         nls_cv_use_gnu_gettext=yes
  151.       fi
  152.     fi
  153.  
  154.     if test "$nls_cv_use_gnu_gettext" != "yes"; then
  155.       AC_DEFINE(ENABLE_NLS)
  156.     else
  157.       dnl Unset this variable since we use the non-zero value as a flag.
  158.       CATOBJEXT=
  159.     fi
  160.  
  161.     dnl Test whether we really found GNU xgettext.
  162.     if test "$XGETTEXT" != ":"; then
  163.       dnl If it is no GNU xgettext we define it as : so that the
  164.       dnl Makefiles still can work.
  165.       if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
  166.         : ;
  167.       else
  168.         AC_MSG_RESULT(
  169.       [found xgettext program is not GNU xgettext; ignore it])
  170.         XGETTEXT=":"
  171.       fi
  172.     fi
  173.  
  174.     # We need to process the po/ directory.
  175.     POSUB=po
  176.  
  177.     AC_OUTPUT_COMMANDS(
  178.       [case "$CONFIG_FILES" in *po/Makefile.in*)
  179.         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
  180.       esac])
  181.  
  182.     dnl These rules are solely for the distribution goal.  While doing this
  183.     dnl we only have to keep exactly one list of the available catalogs
  184.     dnl in configure.in.
  185.     for lang in $ALL_LINGUAS; do
  186.       GMOFILES="$GMOFILES $lang.gmo"
  187.       POFILES="$POFILES $lang.po"
  188.     done
  189.  
  190.     dnl Make all variables we use known to autoconf.
  191.     AC_SUBST(CATALOGS)
  192.     AC_SUBST(CATOBJEXT)
  193.     AC_SUBST(DATADIRNAME)
  194.     AC_SUBST(GMOFILES)
  195.     AC_SUBST(INSTOBJEXT)
  196.     AC_SUBST(INTLDEPS)
  197.     AC_SUBST(INTLLIBS)
  198.     AC_SUBST(INTLOBJS)
  199.     AC_SUBST(POFILES)
  200.     AC_SUBST(POSUB)
  201.   ])
  202.  
  203. AC_DEFUN(AM_GLIB_GNU_GETTEXT,
  204.   [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
  205.    AC_REQUIRE([AC_PROG_CC])dnl
  206.    AC_REQUIRE([AC_PROG_RANLIB])dnl
  207.    AC_REQUIRE([AC_HEADER_STDC])dnl
  208.    AC_REQUIRE([AC_C_CONST])dnl
  209.    AC_REQUIRE([AC_C_INLINE])dnl
  210.    AC_REQUIRE([AC_TYPE_OFF_T])dnl
  211.    AC_REQUIRE([AC_TYPE_SIZE_T])dnl
  212.    AC_REQUIRE([AC_FUNC_ALLOCA])dnl
  213.    AC_REQUIRE([AC_FUNC_MMAP])dnl
  214.  
  215.    AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
  216. unistd.h sys/param.h])
  217.    AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
  218. strdup __argz_count __argz_stringify __argz_next])
  219.  
  220.    AM_LC_MESSAGES
  221.    AM_GLIB_WITH_NLS
  222.  
  223.    if test "x$CATOBJEXT" != "x"; then
  224.      if test "x$ALL_LINGUAS" = "x"; then
  225.        LINGUAS=
  226.      else
  227.        AC_MSG_CHECKING(for catalogs to be installed)
  228.        NEW_LINGUAS=
  229.        for lang in ${LINGUAS=$ALL_LINGUAS}; do
  230.          case "$ALL_LINGUAS" in
  231.           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
  232.          esac
  233.        done
  234.        LINGUAS=$NEW_LINGUAS
  235.        AC_MSG_RESULT($LINGUAS)
  236.      fi
  237.  
  238.      dnl Construct list of names of catalog files to be constructed.
  239.      if test -n "$LINGUAS"; then
  240.        for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
  241.      fi
  242.    fi
  243.  
  244.    dnl Determine which catalog format we have (if any is needed)
  245.    dnl For now we know about two different formats:
  246.    dnl   Linux libc-5 and the normal X/Open format
  247.    test -d po || mkdir po
  248.    if test "$CATOBJEXT" = ".cat"; then
  249.      AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
  250.  
  251.      dnl Transform the SED scripts while copying because some dumb SEDs
  252.      dnl cannot handle comments.
  253.      sed -e '/^#/d' $srcdir/po/$msgformat-msg.sed > po/po2msg.sed
  254.    fi
  255.  
  256.    dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
  257.    dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
  258.    dnl Try to locate is.
  259.    MKINSTALLDIRS=
  260.    if test -n "$ac_aux_dir"; then
  261.      MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
  262.    fi
  263.    if test -z "$MKINSTALLDIRS"; then
  264.      MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
  265.    fi
  266.    AC_SUBST(MKINSTALLDIRS)
  267.  
  268.    dnl Generate list of files to be processed by xgettext which will
  269.    dnl be included in po/Makefile.
  270.    test -d po || mkdir po
  271.    if test "x$srcdir" != "x."; then
  272.      if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
  273.        posrcprefix="$srcdir/"
  274.      else
  275.        posrcprefix="../$srcdir/"
  276.      fi
  277.    else
  278.      posrcprefix="../"
  279.    fi
  280.    rm -f po/POTFILES
  281.    sed -e "/^#/d" -e "/^\$/d" -e "s,.*,    $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
  282.     < $srcdir/po/POTFILES.in > po/POTFILES
  283.   ])
  284.  
  285.